home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Nebula 2
/
Nebula Two.iso
/
SourceCode
/
MiscKit1.7.1
/
MiscKitArchive.mbox
/
mbox
/
000144_misckit-reques…aska.et.byu.edu_Tue Mar 1 09:32 MST 1994.msg
< prev
next >
Wrap
Internet Message Format
|
1994-10-30
|
4KB
Received: from yvax1.byu.edu by maine.et.byu.edu; Tue, 1 Mar 1994 09:32:17 -0700
Received: from DIRECTORY-DAEMON by yvax.byu.edu (PMDF V4.3-5 #4169)
id <01H9GBHYJQV401D5QG@yvax.byu.edu>; Tue, 1 Mar 1994 09:30:29 MST
Received: from alaska.et.byu.edu by yvax.byu.edu (PMDF V4.3-5 #4169)
id <01H9GB8CKRJ402JJIJ@yvax.byu.edu>; Tue, 1 Mar 1994 09:23:01 MST
Received: from acs1.byu.edu by alaska.et.byu.edu; Tue, 1 Mar 1994 09:15:25 -0700
Received: from DIRECTORY-DAEMON by yvax.byu.edu (PMDF V4.3-5 #4169)
id <01H9G99R88SW01D2TD@yvax.byu.edu>; Tue, 1 Mar 1994 08:26:45 MST
Received: from alaska.et.byu.edu by yvax.byu.edu (PMDF V4.3-5 #4169)
id <01H9G992KUFK01CDQ2@yvax.byu.edu>; Tue, 1 Mar 1994 08:26:01 MST
Received: by alaska.et.byu.edu; Tue, 1 Mar 1994 08:25:46 -0700
Date: Tue, 01 Mar 1994 08:25:46 -0700
From: yackd@alaska.et.byu.edu (Don Yacktman)
Subject: Re: App size
To: misckit@byu.edu
Message-id: <199403011525.IAA20843@alaska.et.byu.edu>
Content-transfer-encoding: 7BIT
Status: RO
> I just started using the MiscKit, and I was wondering how much of an app
> size increase there is.
You're 50-100k sounds like it is in the ballpark. If you're doing
dynamic linking/bundle loading it's toward the higher number for
sure, above it in fact, but a completely stripped app still gains
quite a bit. This is one reason why I'd really love it if NeXT
would allow us to do shlibs...the MiscKit is starting to see a lot
of use and it would be nice if we could install it as a shlib.
(Though that _is_ a bit of a complexity for users, which is a problem,
and backward compatability is a bit of a pain, too...ack.)
The other possible solution is, as has been discussed a little bit,
to create several separate libraries, and then have the user link
in the ones that they need only. The only objection I have to this
is the matter of convenience: it is a lot easier to just drop one
lib into a project and know that it will just work than to have to
figure out which object is in each lib and pick and choose one at
a time. Perhaps the best way to go is to create the monolithic
library and several smaller libraries which amount to the big
library broken up into bits. Then, while initially developing, you
just use the big guy. When you're done, and know for sure which
stuff you aren't using, then take the big lib out of the project
and grab the little ones as needed to make the shipping binary.
This wouldn't bother me too much because I've found that knowing I
have the objects available--even though I may not initially plan
on using them--often sparks me into adding extra features to an
app that eventually do make use of the objects. That's why I like
the big library while doing initial development.
Well, I'm not sure what exactly the best way to attack the problem
is, really. The trouble is that if you link without the -ObjC
flag, then you only get the objects that you reference and none
of the Categories. If you link with -ObjC you get _everything_,
even stuff you will never use. I'm not aware of a good way to
tell the linker to do -ObjC but exclude specific files...though
that would be the ideal solution IMHO. That would require some
Makefile.pramble hacking of OTHER_LDFLAGS, but would keep you
from having zillions of libraries to link against.
Hmmm...the whole thing points up a problem with the linker really.
The linker we have was designed for non-OOP languages and as such
isn't able to deal with dynamic languages like ObjC. (It can
handle C++ fine since that's static...but...) So you end up with
an all or nothing, when you really want something in between.
Right now, 50-100k isn't going to kill anyone too badly but when
the MiscKit grows--if it keeps up a fair growth rate--it will
become a problem. Maybe we should convince NeXT that a whole
new linking strategy would be nice. :-)
Well, enough babble. This is an interesting problem that I would
like to do something about, but I'm not sure what the best
approach would be given the state of the current tools. Any
suggestions, folks? What would be best, all things considered?
Later,
-don